home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / ms_dos / compack / compack.doc next >
Encoding:
Text File  |  1993-07-08  |  9.2 KB  |  214 lines

  1. ================================================================
  2. =  〔ソ フ ト名〕  .COM ファイル パックユーティリティ 「ComPack」 第1.00版    =
  3. =  〔作  者  名〕  しんき                                      =
  4. =  〔対応  機種〕  MS-DOS  Ver 3.xx                =
  5. =  〔動作  確認〕  FM TOWNS                             =
  6. =  〔完  成  日〕  1992.02.15                                  =
  7. =  〔開発  環境〕  Power C + 386|asm                           =
  8. ================================================================
  9.  
  10. 【はじめに】
  11.   手頃で便利な「.COM」ファイル。けっこう,便利なプログラムってたくさんありま
  12. すよね。で,その中には「200バイト」とか「100バイト」,さらには「9バイト」な
  13. んていう小さい「.COM」が割とあるもんです。小さくて便利だから,「いいや,全部
  14. ハードディスクの中に放り込んじゃえっ!!」なんて言ってる人……けっこういるんじ
  15. ゃないかなぁ(少なくとも私はその一人)。
  16.            ・      ・      ・      ・      ・      ・      ・      ・
  17.   ところで,ハードディスクにかかわらず,ディスクにはクラスタっていう概念があ
  18. るのをご存じでしょうか。このクラスタっていうのは,例えるならば原稿用紙のよう
  19. なものです。
  20.   よく,夏休みの宿題なんかで,「原稿用紙3枚」なんていう感想文を書かされたも
  21. のですが,それは,「2枚と1行」でも,「2枚と10行」でも「原稿用紙3枚」に違
  22. いないんですよね。で,宿題キライだから,「2枚と1行」で終わらせた人なんかけ
  23. っこう多いんじゃないかな(私だけだって??)。
  24.   ここまで話したらちょっと話が見えてきたかな?  原稿用紙にあたるこの「クラス
  25. タ」,データを1文字書こうが,20文字書こうが,「1クラスタ」必要なのには変わ
  26. りがないということです。つまり,1文字だけ書いたときは,クラスタに無駄がたく
  27. さんできてしまうわけですね。
  28.   フロッピィディスクみたいに比較的記憶容量が少ないメディアでは,「1クラスタ
  29. =1024バイト」とかなので,最悪でも「1023バイト」の無駄で済みます。でも,ちょ
  30. っと容量の大きいハードディスクなんかだと,「1クラスタ=4096バイト」とか「1
  31. クラスタ=16384バイト」とか平気で取られちゃうんですよね。
  32.             ・      ・      ・     ・      ・      ・      ・      ・
  33.   で,その「無駄」をなんとかなくすことができないかなぁ……とある日考えました
  34. (え? けち臭い??)。その解決策がこれです。
  35.  
  36.       「複数COMファイルを1つのプログラムにまとめてしまおう」
  37.  
  38.   ……とまぁ,いろいろともっともらしいことを書いたわけですが,まぁこれは1つ
  39. の「たてまえ」ってヤツで,実際は「1つにまとまったらカッコ良いじゃん」てこと
  40. で作り始めました。では,作り始めた動機を紹介したところで,実際に詳しい使い方
  41. なんかに入りたいと思います。
  42.  
  43. 【使用方法】
  44.   機能は,「プログラムをまとめる」と「まとめたプログラムの中身を見る」しかな
  45. いので,実際に例を用いて説明していきます。
  46.   カレントディレクトリは次のようになっているものと考えてください。なお,以下
  47. に表示されているファイルは,今回収録されているものとは,若干,日付やサイズが
  48. 異なると思いますが,あまり気にしないでください。
  49. ----------------------------------------------------------------------------
  50.  ドライブ H: のディスクのボリュームラベルは COMMAND
  51.  ディレクトリは H:\COMPACK
  52.  
  53. .            <DIR>     92-01-19   4:45
  54. ..           <DIR>     92-01-19   4:45
  55. COMPACK  COM    24036  92-01-16  13:15
  56. PROG1    COM       11  91-02-18   4:00
  57. PROG2    COM       33  91-03-23   3:57
  58. PROG3    COM       33  92-01-19   4:50
  59. PROG4    COM       81  92-01-19   4:46
  60. PROG5    COM      190  92-01-19   4:47
  61. PROG6    COM      909  91-03-07  10:46
  62. PROG7    COM      284  92-01-19   4:46
  63. PROG8    COM      164  92-01-19   4:46
  64. PROG9    COM      484  92-01-19   4:46
  65.        12 個のファイルがあります.
  66.    5616096 バイトが使用可能です.
  67. -----------------------------------------------------------
  68.  
  69.  
  70. ■  プログラムをまとめる(新規作成)  ■
  71.  
  72.   ここで,まず「prog1.com」~「prog7.com」をまとめたいと思います。
  73.  
  74. > compack all prog1 prog2 prog3 prog4 prog5 prog6 prog7
  75.    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  76. 実行結果---------------
  77. 「all.com」に「prog1.com」を追加します
  78. 「all.com」に「prog2.com」を追加します
  79. 「all.com」に「prog3.com」を追加します
  80. 「all.com」に「prog4.com」を追加します
  81. 「all.com」に「prog5.com」を追加します
  82. 「all.com」に「prog6.com」を追加します
  83. 「all.com」に「prog7.com」を追加します
  84. -------------------
  85.  
  86.  
  87.   これで,パックされたプログラム「all.com」が作成されました。
  88.   このように実行すると,「all.com」というファイルに,カレントにある,「prog1.
  89. com」~「prog7.com」を連結するわけです。
  90.  
  91.  
  92. ■  まとめたプログラムの中身を見る  ■
  93.  
  94.   ちょっと,中身を確認してみましょう。実際には次のように実行します。
  95.  
  96. > compack all
  97.    ^^^^^^^^^^^
  98. 実行結果---------------------
  99. ベースファイル 「all.com」 の一覧
  100.  
  101.   コマンド名        サイズ
  102. ---------------   -----------
  103. ComPack本体         $0231
  104. PROG1                 $000b
  105. PROG2                 $0021
  106. PROG3                 $0021
  107. PROG4                 $0051
  108. PROG5                 $00be
  109. PROG6                 $038d
  110. PROG7                 $011c
  111. ---------------   -----------
  112.     合計              $08a6  (残り $5759 バイト)
  113.  
  114. -------------------------
  115.  
  116.   どうやら,無事にパックされたようですね。因みに右下に表示されている残りバイ
  117. トというのは,その1つのベースファイルに取り込めるCOMのサイズを意味します。
  118. 上記の例は,つまりあと22361バイト($5759バイト)まで詰め込むことが可能だとい
  119. うことを意味しているわけです。
  120.  
  121.   ところで,このパックされたコマンドを調べるのに,いちいち「ComPack」を呼び
  122. 出すのは面倒ですよね。というわけで,次のような確認方法もあります。
  123.  
  124. > ALL
  125.    ^^^
  126. 実行結果--------------------------------
  127. --------- Listing of basefile ---------
  128. PROG1           PROG2           PROG3           PROG4           PROG5           PROG6           PROG7           
  129. ------------------------------------
  130.  
  131.   わかりますね。つまり,パックしたプログラム(all.com)を,パラメータなしで
  132. 起動すると,パックされたプログラム(prog1~7)が表示されるわけです。
  133.  
  134.   では,実際にパックされたプログラムを呼び出してみましょう。
  135.  
  136. > all prog1 12345 67890
  137.    ^^^^^^^^^^^^^^^^^^^^^
  138.   これは,「prog1 12345 67890」を実行したのと同じことになります。つまり実行
  139. 方法は,先頭にパックしたプログラム名(all)が付くというだけです。
  140.  
  141.  
  142. ■  プログラムをまとめる(追加)  ■
  143.  
  144.   さて,動くことも確認したし,さらに「prog8.com」「prog9.com」を追加したいと
  145. 思います。
  146.  
  147. > compack all prog8 prog9
  148.    ^^^^^^^^^^^^^^^^^^^^^^^
  149. 実行結果---------------
  150. 「all.com」に「prog8.com」を追加します
  151. 「all.com」に「prog9.com」を追加します
  152. -------------------
  153.  
  154.   これで追加されました。つまり,先程と同じ要領で行えばいいわけですね。では,
  155. さっそく確認してみましょう。
  156.  
  157. > all
  158.    ^^^
  159. 実行結果--------------------------------
  160. --------- Listing of basefile ---------
  161. PROG1           PROG2           PROG3           PROG4           PROG5           PROG6           PROG7           PROG8           PROG9           
  162. ------------------------------------
  163.  
  164.   なるほど,確かに追加されてますね。
  165.  
  166.   と,このように追加を行うわけですが,先ほども説明した「残りバイト」には注意
  167. しましょう(別に,壊れるわけじゃないですが ^^;)。
  168.   なお,本バージョンでは,全体で24Kのファイルまで作成可能となっています。
  169.  
  170. 【あとがき】
  171.   ここまでお付き合いいただいて,どうもありがとうございました。
  172.   とりあえず,ここまで読み進んでくれた方は,このプログラムの価値・そして使い
  173. 方を理解することができたのではないかと思います。
  174.   このプログラムを「DIET」などの圧縮プログラムと併用すれば,大いに容量の節約
  175. に役に立つことと思います。その際,一度圧縮されたプログラムは元に戻さない限り,
  176. ComPackでのファイル追加はできませんので,ご注意ください。
  177.   まだ,本バージョンでは至らないところもいくつかあると思いますが,何か気の付
  178. くところがあれば,どんどんご指摘してください。できる限り対処したいと思います。
  179.  
  180. 【今後の課題】
  181.   戒めのためにも,今後の課題をあげておきたいと思います。ちょっと,「圧縮」や
  182. 「.EXE対応」は難しいかもしれませんが(サイズ的にも),せめて1~3番あた
  183. りは実現させたいと思います。
  184.  
  185.       1.  取り込んだファイルの削除/復元
  186.       2.  取り込みファイル指定のワイルドカード対応
  187.       3.  取り込み元パスの省略化(環境変数PATH参照)
  188.       4.  取り込んだファイルの圧縮
  189.       5.  .EXEへの対応
  190.  
  191. 【使用条件】
  192.   本ソフトは,フリーソフトウェアです。このプログラムを運用したことによる事故,
  193. 障害などにあたって,作者は何の責任ももたないこととします。つまり,このプログ
  194. ラム使用の際に生じた一切の問題の責任は自分でとることが前提であるということで
  195. す。つまり,「こんなはずじゃなかった」と作者に泣きついてきても,当方は一切関
  196. 知しないということです。なお,本プログラムを用いてパックしたプログラムは,自
  197. 由に配布することができます。
  198.  
  199. 【配布条件】
  200.   基本的に配布は自由です。転載は,作者の許可を得ることなく行ってかまいません
  201. が,可能ならばその旨連絡いただければ幸いです(事後報告だって嬉しいよん)。
  202.  
  203. 【パソコン通信ネットワーク上での連絡先】
  204.   バグ・ご意見・ご感想は,今後の参考にさせて戴きますので,お気軽にお近くのし
  205. んきまで連絡ください。
  206.  
  207.   NIFTY-Serve             GDH03575      森 貴史(しんき)
  208.   J&P-Hotline             JH114447      しんき
  209.   JATIC町田                    J81                MORI
  210.   笑ゥBBS                        WRW055          しんき
  211.   CLUB  DA2                  DADA046        しんき
  212.   Cafe Paradise                     CFP00036      しんき
  213.  
  214.